import axios from "axios";

// 创建axios实例
const instance = axios.create({
  baseURL: 'http://localhost:8080/api', // 根据后端地址调整
  timeout: 5000,
  withCredentials: true, // 允许跨域请求携带凭证（cookies）
  headers: {
    'Content-Type': 'application/json',
    'Access-Control-Allow-Origin': '*'
  }
});

// 请求拦截器
instance.interceptors.request.use(
  config => {
    // 在发送请求之前做些什么
    return config;
  },
  error => {
    // 对请求错误做些什么
    return Promise.reject(error);
  }
);

// 响应拦截器
instance.interceptors.response.use(
  response => {
    // 对响应数据做点什么
    return response.data;
  },
  error => {
    // 对响应错误做点什么
    if (error.response) {
      switch (error.response.status) {
        case 401: // 未授权，未登录
          // 重定向到登录页面
          window.location.href = '/login';
          break;
        case 403: // 禁止访问
          console.error('没有权限访问此资源');
          break;
        case 404: // 资源不存在
          console.error('请求的资源不存在');
          break;
        case 500: // 服务器错误
          console.error('服务器错误');
          break;
        default:
          console.error(`未知错误: ${error.response.status}`);
      }
    } else if (error.request) {
      // 请求已发送但没有收到响应
      console.error('网络错误，无法连接到服务器');
    } else {
      // 请求配置出错
      console.error('请求配置错误:', error.message);
    }
    return Promise.reject(error);
  }
);

export default instance;